/*===============================================
Copyright (c): Technology Co.,Ltd. ALL rights reserved. 
                                                                 
  Create by:LIN
      Email:
       Date:
   Filename:
Description:
    Version:
Last Change:
                                                                 
=======================================*/
                                                                 
`ifndef SWITCH_VIRTUAL_SEQUENCER_SV
`define SWITCH_VIRTUAL_SEQUENCER_SV

`include "mac_sequencer.sv"

class switch_virtual_sequencer extends uvm_sequencer;
	mac_sequencer mac_mii_sqrs[PORT_NUM];

	`uvm_component_utils(switch_virtual_sequencer)
	virtual interface mii_if vif;

	function new (string name = "switch_virtual_sequencer", uvm_component parent);
		super.new(name, parent);
	endfunction

	function void build_phase(uvm_phase phase);
		super.build_phase(phase);
		if (!uvm_config_db #(virtual mii_if #(PORT_NUM))::get(this, "", "vif", vif))
			`uvm_error("NOVIF", {"virtual interface must be set for: ", get_full_name(),".vif"})

	endfunction
endclass

`endif
